/*
 * @Author: earl 
 * @Date: 2018-12-10 17:22:38 
 * @Last Modified by: earl
 * @Last Modified time: 2018-12-10 17:39:45
 * @Describe:  对于POST请求的处理，koa-bodyparser中间件可以把koa2上下文的formData数据解析到ctx.request.body中
 */

 const Koa = require('Koa')
 const app = new Koa()
 const bodyParser = require('koa-bodyparser')

 // 使用ctx.body解析中间件
 app.use(bodyParser())

 app.use( async (ctx) =>{
   // 当GET请求时返回表单页面
  if(ctx.url === '/' && ctx.method === 'GET'){
    let html = `
    <h1>koa2 request post demo</h1>
    <form method="POST" action="/">
      <p>userName</p>
      <input name="userName" /><br/>
      <p>nickName</p>
      <input name="nickName" /><br/>
      <p>email</p>
      <input name="email" /><br/>
      <button type="submit">submit</button>
    </form>
    `
    ctx.body = html
  } else if(ctx.url === '/' && ctx.method === 'POST'){
    // 当POST请求的时候，中间件koa-bodyparser解析POST表单里的数据，并显示出来
    let postData = ctx.request.body
    ctx.body = postData
  } else {
    ctx.body = '<h1> 404!!</h1>'
  }
 })

 app.listen(3000, ()=>{
  console.log('[demo] request post is starting at port 3000')
 })
